<template>
    <div id="tmpl">
        <div class="row" v-for="(item,index) in datalist">
            <mt-switch class="switch" v-model="value[index]"></mt-switch>
            <img class="img" :src="item.thumb_path" alt="商品图片"/>
            <div class="inforight">
                <h4 v-text="item.title"></h4>
                <div class="bottom">
                    <ul>
                        <li>￥{{item.sell_price}}</li>
                        <li>
                            <carinputNumber :initCount="item.cou" :goodsid="item.id" v-on:cardataobj="getinputNumber"></carinputNumber>
                        </li>
                        <li>
                            <a href="javascript:;" @click="delrow(item.id,index)">删除</a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
        <div id="total">
            <div class="desc">
                <ul>
                    <li>总计（不含运费）</li>
                    <li>已勾选商品{{totalcount}}件，总价：￥{{totalAmount}}元</li>
                </ul>
            </div>
            <div id="button">
                <mt-button type="danger" size="small">去结算</mt-button>
            </div>
        </div>
    </div>
</template>

<script>
    import {getgoodsObject,updateaData,removeItem} from '../../kits/localSg.js';
    import common from '../../kits/common.js';
    import { Toast } from 'mint-ui';
    import carinputNumber from '../subcom/carinputNumber.vue';
    export default {
        components:{
            carinputNumber
        },
        computed:{
            // 1.0 定义计算总件数的属性
            totalcount(){
                // 计算逻辑：只需要计算出this.value数组中的true值有多少个即可
                var trueArr = this.value.filter(function(item){
                    return item;
                });
                // 计算出当前选中的商品的总价格
                // 计算方式：当前商品的购买数量 * 商品的单价（其中这两个值均从this.datalist中获得）
                var amount = 0;
                this.value.forEach((item,index)=>{
                    // 判断当前的itEm如果为true的话，则这个商品的总价格是要计算的
                    if(item) {
                        var count = this.datalist[index].cou;
                        var price = this.datalist[index].sell_price;
                        var itemamount = count * price;
                        amount += itemamount;
                    }
                });
                this.totalAmount = amount;
                return trueArr.length;
            }
        },
        data(){
            return {
                totalAmount:0,
                datalist:[],
                value:[]
            }
        },
        created(){
            // 调用方法获取购物车列表数据
            this.getdatalist();
        },
        methods:{
            delrow(goodsid,index){
                //1.0 将this.value数组中的index这个位置的值移除(当移除了这个值的时候就会自动触发计算属性totalcount的执行)
                this.value.splice(index,1);
                //2.0将this.datalist中的index这个位置的值移除
                this.datalist.splice(index,1);
                //3.0将localStorage中的goodsid对应的所有值移除
                removeItem(goodsid);
            },
            // 获取数量组件中返回的内容
            getinputNumber(resObj){
                //1.0更新localStroge中的数据
                updateaData(resObj);
                // 2.0 更新this.datalist中的当前数量
                for(var i = 0; i < this.datalist.length; i++){
                    if(this.datalist[i].id == resObj.goodsid) {
                        if(resObj.type == 'add'){
                            this.datalist[i].cou = this.datalist[i].cou + 1;
                        }else {
                            this.datalist[i].cou = this.datalist[i].cou - 1;
                        }
                        break;
                    }
                }

            },
            getdatalist(){
                // 1.0 从localStrong中获取到所有的商品的id值
                var obj = getgoodsObject();
                // 2.0 将id值按照api的参数格式提交给api
                var idstring = '';
                for(var key in obj){
                    idstring += key + ',';
                }
                idstring = idstring.substring(0,idstring.length - 1);
                // 3.0 ajax请求这个api获取到完整的商品数据信息赋值给this.datalist
                var url = common.apidomain+'/api/goods/getshopcarlist/'+idstring;
                this.$http.get(url).then(function(res){
                    if(res.body.status != 0) {
                        Toast(res.body.message);
                        return;
                    }
                    // 将localStroge中的所有的商品对应的count值赋值给message中每个对象的cou
                    res.body.message.forEach((item)=>{
                        item.cou = obj[item.id];
                        this.value.push(false);
                    });
                    this.datalist = res.body.message;

                });

            }
        }
    }
</script>

<style scoped>
    .row {
        border-bottom: 1px solid rgba(0,0,0,0.3);
        height: 102px;
        display: flex;
        padding: 5px;
    }
    .switch {
        flex: 0 0 52px;
    }
    .img {
        height: 75px;
        width: 75px;
        flex: 0 0 75px;
        margin-left: 5px;
    }
    .inforight {
        flex: 1;
        margin-left: 5px;
    }
    .inforight ul {
        padding-left: 0px;
    }
    .inforight li {
        list-style: none;
        display: inline-block;
    }
    .inforight h4 {
        color: #0094ff;
        font-size: 14px;
    }
    .inforight .bottom li:first-child {
        color: red;
        margin-right: 5px;
    }
    .inforight .bottom li:last-child {
        margin-left: 5px;
    }
    #total {
        height: 100px;
        background-color: rgba(0, 0, 0, 0.1);
        display: flex;
        padding: 5px;
    }
    #total ul {
        padding-left: 0px;
    }
    #total li {
        list-style: none;
        font-size: 14px;
    }
    #button {
        flex: 0 0 60px;
        margin: 20px 0 0;
    }
    .desc {
        flex:1;
    }
</style>
